package com.cn.demo.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@JsonInclude(value= JsonInclude.Include.NON_NULL)
public class Curriculum implements Serializable {
    /**
     * 课程ID
     */
    private String curriculumId;

    /**
     * 课程名称
     */
    private String curriculumName;

    /**
     * 老师ID
     */
    private String teacherId;

    /**
     * 内容简介
     */
    private String content;

    /**
     * 课时
     */
    private String classHour;

    /**
     * 课程开始时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(locale="zh", pattern="yyyy-MM-dd")
    private Date startDate;

    /**
     * 课程结束时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(locale="zh", pattern="yyyy-MM-dd")
    private Date endDate;

    /**
     * 课程设计ID
     */
    private String curriculumDesignId;

    private String curriculumDesignEvaluate;

    /**
     * 课程实验ID
     */
    private String curriculumExperimentId;

    private String curriculumExperimentEvaluate;

    /**
     * 课程实习ID
     */
    private String curriculumInternshipId;

    private String curriculumInternshipEvaluate;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 课程项目
     */
    private List<String> project;

    /**
     * 当前授课老师信息
     */
    private Teacher teacher;

    /**
     * 学生该课程的成绩
     */
    private List<Evaluate> evaluateList;


    public String getCurriculumDesignEvaluate() {
        return curriculumDesignEvaluate;
    }

    public void setCurriculumDesignEvaluate(String curriculumDesignEvaluate) {
        this.curriculumDesignEvaluate = curriculumDesignEvaluate;
    }

    public String getCurriculumExperimentEvaluate() {
        return curriculumExperimentEvaluate;
    }

    public void setCurriculumExperimentEvaluate(String curriculumExperimentEvaluate) {
        this.curriculumExperimentEvaluate = curriculumExperimentEvaluate;
    }

    public String getCurriculumInternshipEvaluate() {
        return curriculumInternshipEvaluate;
    }

    public void setCurriculumInternshipEvaluate(String curriculumInternshipEvaluate) {
        this.curriculumInternshipEvaluate = curriculumInternshipEvaluate;
    }

    public List<Evaluate> getEvaluateList() {
        return evaluateList;
    }

    public void setEvaluateList(List<Evaluate> evaluateList) {
        this.evaluateList = evaluateList;
    }

    public Teacher getTeacher() {
        return teacher;
    }

    public void setTeacher(Teacher teacher) {
        this.teacher = teacher;
    }

    public List<String> getProject() {
        return project;
    }

    public void setProject(List<String> project) {
        this.project = project;
    }

    private static final long serialVersionUID = 1L;

    public String getCurriculumId() {
        return curriculumId;
    }

    public void setCurriculumId(String curriculumId) {
        this.curriculumId = curriculumId == null ? null : curriculumId.trim();
    }

    public String getCurriculumName() {
        return curriculumName;
    }

    public void setCurriculumName(String curriculumName) {
        this.curriculumName = curriculumName == null ? null : curriculumName.trim();
    }

    public String getTeacherId() {
        return teacherId;
    }

    public void setTeacherId(String teacherId) {
        this.teacherId = teacherId == null ? null : teacherId.trim();
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content == null ? null : content.trim();
    }

    public String getClassHour() {
        return classHour;
    }

    public void setClassHour(String classHour) {
        this.classHour = classHour == null ? null : classHour.trim();
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public String getCurriculumDesignId() {
        return curriculumDesignId;
    }

    public void setCurriculumDesignId(String curriculumDesignId) {
        this.curriculumDesignId = curriculumDesignId == null ? null : curriculumDesignId.trim();
    }

    public String getCurriculumExperimentId() {
        return curriculumExperimentId;
    }

    public void setCurriculumExperimentId(String curriculumExperimentId) {
        this.curriculumExperimentId = curriculumExperimentId == null ? null : curriculumExperimentId.trim();
    }

    public String getCurriculumInternshipId() {
        return curriculumInternshipId;
    }

    public void setCurriculumInternshipId(String curriculumInternshipId) {
        this.curriculumInternshipId = curriculumInternshipId == null ? null : curriculumInternshipId.trim();
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks == null ? null : remarks.trim();
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", curriculumId=").append(curriculumId);
        sb.append(", curriculumName=").append(curriculumName);
        sb.append(", teacherId=").append(teacherId);
        sb.append(", content=").append(content);
        sb.append(", classHour=").append(classHour);
        sb.append(", startDate=").append(startDate);
        sb.append(", endDate=").append(endDate);
        sb.append(", curriculumDesignId=").append(curriculumDesignId);
        sb.append(", curriculumExperimentId=").append(curriculumExperimentId);
        sb.append(", curriculumInternshipId=").append(curriculumInternshipId);
        sb.append(", remarks=").append(remarks);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}